#pragma once

#include <AVUIMaterialCollection.h>

namespace AVUI {

class MaterialGroup : public Material
{
    friend class PathGeometry;

public:
    DECLARE_ELEMENT(MaterialGroup, Material);

    DECLARE_DEPENDENCY_PROPERTY_BEGIN(Children);
        DECLARE_ATTRIBUTE_CONTENTPROPERTY();
        DECLARE_ATTRIBUTE_AUTOCREATE();
    DECLARE_DEPENDENCY_PROPERTY_END();
    TRefCountedPtr<MaterialCollection> get_Children() { return (MaterialCollection*)(Object*)GetValue(get_ChildrenProperty()); }
    void set_Children(MaterialCollection* pValue) { SetValue(get_ChildrenProperty(), (Object*)pValue); } 

protected:
    virtual TRefCountedPtr<Freezable> CreateInstanceCore() AVUI_OVERRIDE { return object_allocate<MaterialGroup>().get_Ptr(); }

private:
    static void StaticConstructor();
};


}; // namespace AVUI
